The advent of tape recorders for playback of both audio and video material enabled users of the recorders to easily and quickly scroll forward or backward, using “fast forward” and “fast reverse” modes, as well as using a “standard play” mode. The ability to fast forward and reverse is thus a highly desirable feature for video that is streamed.
Streamed movies with video and audio, such as movies produced according to one of the Moving Picture Experts Group (MPEG) standards, comprise Intracoded frames (I-frames), which are substantially self-contained images. The streamed movies also includes Predictive frames (P-frames), which incorporate differences from a prior frame, and Bidirectional frames (B-frames) which incorporate differences from a prior and a subsequent frame. MPEG standards may be found at www.chiariglione.org/mpeg/standards.htm.
The MPEG-2 (part 1) standard defines how a video elementary stream, an audio elementary stream, and other data elementary streams are to be multiplexed. Hereinbelow, a video elementary stream is also referred to as a video stream, and an audio elementary stream is also referred to as an audio stream. Each elementary stream is a byte stream which is broken up into variable-length packets, forming a packetized elementary stream (PES). The standard provides two methods for delivering the PESs.
In a first method of delivery, termed a program stream, the PES packets are multiplexed and are organized into units termed “packs.” Program streams are designed for relatively error-free environments. In a second method of delivery, termed a transport stream, the PES packets are further packaged inside fixed-sized transport stream packets. Transport streams are designed for unreliable environments. Either method may be used to deliver streamed movies which may be transmitted using a Real-Time Transport Protocol (RTP), described in Request for Comments (RFC) 1889. Communication between a provider and a receiver of a streamed movie is typically according to a Real-Time Streaming Protocol (RTSP), which is described in RFC 2326. RFC 1889 and RFC 2326 are published by the Internet Engineering Task Force, and may be found at www.ietf.org/rfc.
A number of processes are known for enabling fast forward and reverse modes, also termed trick replay modes, to be generated for streamed movies. U.S. Patent Application Publication 2003/0077071 to Lin, et al., whose disclosure is incorporated herein by reference, describes a method for trick mode playback of an MPEG video recording, using an information file giving locations of I-frames. The method selects stored progressive or non-progressive frames to be incorporated into the playback.
U.S. Patent Application Publication 2002/0120942 to Avison, whose disclosure is incorporated herein by reference, describes a trick mode method using an MPEG video stream and also an altered format stream derived from the MPEG stream.
U.S. Pat. No. 6,389,218 and U.S. Patent Application Publication 2002/0015576 to Gordon, et al., whose disclosures are incorporated herein by reference, describe an “all-in-one” encoder that produces MPEG fast forward, fast reverse and play streams from video frames.
U.S. Pat. No. 6,760,536 to Amir, et al., whose disclosure is incorporated herein by reference, describes a method for analyzing digital video to produce a content-based variable-rate play back sequence for fast forward or reverse browsing.
U.S. Pat. No. 6,760,536 to U.S. Pat. No. 6,738,980 Lin, et al., whose disclosure is incorporated herein by reference, describes a method for producing fast forward and reverse modes for a video stream. The method comprises storing and retrieving forward-encoded and reverse-encoded bit streams for the video stream.
U.S. Pat. No. 6,510,554 to Gordon, et al., whose disclosure is incorporated herein by reference, describes a method for generating an information sub-stream from an MPEG stream. The information sub-stream may be used as a fast forward and reverse stream.
U.S. Pat. No. 6,445,738 to Zdepski, et al., whose disclosure is incorporated herein by reference, describes a method for processing an initial MPEG stream into an MPEG video stream suitable for trick replay. The processed MPEG video stream has reduced storage and bandwidth requirements, generated by removing a portion of the frames of the initial MPEG stream.
U.S. Pat. No. 6,327,421 to Tiwari, et al., whose disclosure is incorporated herein by reference, describes storing a sub-sequence of an original MPEG sequence for use in servicing fast forward and reverse requests.
U.S. Pat. No. 6,065,050 to DeMoney, whose disclosure is incorporated herein by reference, describes a method for indexing between video streams. A first stream may be a standard play rate stream, a second stream may be a trick play stream.
U.S. Pat. No. 6,057,832 to Lev, et al., whose disclosure is incorporated herein by reference, describes a method for storing a video stream as I-frames and other frames. On receipt of a trick replay request, only the I-frames are displayed.
U.S. Pat. No. 5,771,335 to Lee, whose disclosure is incorporated herein by reference, describes a method for fast forward and reverse of an MPEG stream. The method comprises preparing an I-frame table and incrementing or decrementing in the table for the forward or reverse streams. The increment or decrement gives a size of a video packet to be transmitted, and the packet is configured to always contain an I-frame.